home *** CD-ROM | disk | FTP | other *** search
- /*
- File: PreloadTest.c
-
- Contains: Test Circular dependencies in libraries
-
- Copyright: © 1992-1994 by Apple Computer, Inc., all rights reserved.
-
- */
-
- #ifndef __STDIO__
- #include <stdio.h>
- #endif
- #ifndef __CTYPE__
- #include <ctype.h>
- #endif
-
- #ifndef __LIBRARYMANAGER__
- #undef NULL
- #include <LibraryManager.h>
- #endif
- #ifndef __LIBRARYMANAGERUTILITIES__
- #include <LibraryManagerUtilities.h>
- #endif
-
- extern int CircLib1(void);
- extern int CircLib2(void);
- extern int CircLib3(void);
- extern OSErr UnloadCircLib1(void);
- extern Boolean IsLibraryManagerLoaded(void);
-
- int main(int argc, char** argv)
- {
- OSErr err;
- int a, b, c;
- Boolean doBreak = false;
- short index;
-
- for (index = 1; index < argc; index++)
- {
- if (argv[index][0] == '-')
- {
- switch (tolower(argv[index][1]))
- {
- case 'x':
- doBreak = true;
- break;
-
- default:
- fprintf(stderr, "### ERROR: Unknown option - '%s'\n", argv[index]);
- return 1;
- }
- }
- else
- {
- fprintf(stderr, "### ERROR: Unknown option - '%s'\n", argv[index]);
- return 1;
- }
- }
- if (doBreak)
- DebugBreak("About to call InitLibraryManager");
-
- if ((err = InitLibraryManager(32768, kCurrentZone, kNormalMemory)) != kNoError)
- {
- fprintf(stderr, "### ERROR: Error #%d occurred initializing SLM\n", err);
- return 3;
- }
- if ((err = LoadLibraries(true, true)) != kNoError)
- {
- fprintf(stderr, "### ERROR: Error #%d occurred preloading libraries\n", err);
- CleanupLibraryManager();
- return 4;
- }
- a = CircLib1();
- if (a != 515)
- {
- fprintf(stderr, "### ERROR: CircLib1 returned a %d instead of a 515\n", a);
- }
- b = CircLib2();
- if (b != 516)
- {
- fprintf(stderr, "### ERROR: CircLib2 returned a %d instead of a 516\n", b);
- }
- c = CircLib3();
- if (c != 517)
- {
- fprintf(stderr, "### ERROR: CircLib3 returned a %d instead of a 517\n", c);
- }
- if ((err = UnloadLibraries()) != kNoError)
- {
- fprintf(stderr, "### ERROR: Error #%d occurred preloading libraries\n", err);
- }
- ResetFunctionSet(NULL);
- if ((err = UnloadCircLib1()) != kNoError)
- {
- fprintf(stderr, "### ERROR: Error #%d occurred unloading CircLib1\n", err);
- }
- CleanupLibraryManager();
- return 0;
- }
-
-